import Vue from 'vue'
import Vuex from 'vuex'

// 从utils中按需导入本地存储中封装的 setItem, getItem 方法
import { setItem, getItem } from '../utils/storage.js'
Vue.use(Vuex)

// 声明 token 的 key 值
const TOKNE_KEY = 'TOUTIAO_USER'
export default new Vuex.Store({
  state: {
    // 存储当前登录的用户信息,把本地储存中的字符串转对象形式保存
    // user: JSON.parse(window.localStorage.getItem(TOKNE_KEY))
    // 调用封装的setItem方法
    user: getItem(TOKNE_KEY)
  },
  mutations: {
    // 对 user 进行修改
    setUser (state, data) {
      state.user = data
      // 防止刷新丢失把数据备份到本地存储并转成JSON字符串格式
      // window.localStorage.setItem(TOKNE_KEY, JSON.stringify(state.user))
      // 调用封装的getItem方法
      setItem(TOKNE_KEY, state.user)
    }
  },
  actions: {},
  modules: {}
})
